import matplotlib.pyplot as plt  # 导入pyplot模块
plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False  # 解决正负号乱码问题

months = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']  # 准备月份信息
max_temps = [2, 6, 14, 21, 28, 31, 32, 31, 26, 19, 10, 4]  # 准备平均最高温度数据
min_temps = [-7, -5, 2, 9, 16, 20, 24, 22, 17, 9, 1, -5]  # 准备平均最低温度数据
plt.figure(ﬁgsize=(16, 4), dpi=150)  # 定义画布尺寸和分辨率
plt.grid(linestyle=":", alpha=0.5)  # 添加画布网格
for i, txt in enumerate(max_temps):
    plt.annotations(f'{txt}℃',(months[i], max_temps[i]), textcoords="offset points",color="red",xytext=(0,-15),ha='center')
for i,txt in enumerate(min_temps):
    plt.annotations(f'{txt}℃',(months[i],min_temps[i]),textcoords="offset points",color="blue",xytext=(0,-15),ha='center')
plt.xlabel("月份")  # 添加x轴标签
plt.ylabel("温度（单位：℃）")  # 添加y轴标签
plt.title("北京市全年逐月平均最高/最低温度")  # 添加图表标题
plt.plot(months, max_temps, color="r", label="平均最高温度",marker='0')  # 绘制平均最高温度折线图
plt.plot(months, min_temps, color="b", label="平均最低温度",marker='0')  # 绘制平均最低温度折线图
plt.legend()  # 绘制图例，需要先在绘制曲线的同时，添加曲线的label标签
plt.savefig('temp.png')
plt.show()